package com.iatinspur.learn2;

import java.util.ArrayList;
import java.util.List;

/**
 *  第1集  内存溢出 与 内存泄漏
 *  todo 内存泄漏 有引用 清不掉
 *       内存溢出 没有引用 清理不完
 *  第2集  解决内存溢出的思路   linux top命令
 *  第3集  解决内存溢出的思路   visual VM 【在jdk\bin\jvisualvm.exe 中】 这个东西能远程不要连接生产环境
 *  第4集  解决内存溢出的思路   arthas tunnel  需要boot中要有arthas 依赖
 *  todo 发现 诊断 修复 验证
 *       【发现】 linux top命令  关注系统负载 内存
 *  第5集  解决内存溢出的思路   prometheus + Grafana 教你怎么用
 *  第6集  从图中  推测 内存是否会溢出
 *
 */
public class Learn_1_JVM {
    public static final List<Object> list = new ArrayList<Object>();

    public static void main(String[] args) throws InterruptedException {
        myTest3();
    }


    /**
     * 内存泄漏的内存溢出
     * @throws InterruptedException
     */
    public static void myTest1() throws InterruptedException {
        while(true){
            byte[] b = new byte[1024*1024];
            list.add(b);
            Thread.sleep(10000);
        }
    }



    /**
     * 内存溢出
     * @throws InterruptedException
     */
    public static void myTest2() throws InterruptedException {
        while(true){
            byte[] b = new byte[1024*1024*5];
            Thread.sleep(5000);
        }
    }


    /**
     * @throws InterruptedException
     */
    public static void myTest3() throws InterruptedException {
        while(true){
            byte[] bytes = new byte[1024 * 1024*5];


          //  Thread.sleep(100);
        }
    }



}
